In a typical computer system, many of the computer system devices include revision identification registers that contain a value that indicates the current revision of the associated hardware. Typically, every time a device undergoes a revision (often referred to as a “stepping”), the value stored in the revision identification register is changed to reflect the new stepping. Prior computer system devices implement the revision identification registers as read-only registers. In other words, the contents of the revision identification registers are not modifiable.
When an operating system is loaded during a computer system boot process, the operating system typically checks the various revision identification registers to determine the current steppings of the various devices. The operating system uses the revision identification information to make decisions regarding which device drivers to load. When the operating system recognizes a new device stepping, the operating system loads an updated device driver for that device.
Computer systems typically include highly-integrated system logic devices often referred to as “chipsets”. Theses system logic devices may include many functional units, and many of these functional units may include revision identification registers. Typically, when a highly-integrated system logic device undergoes a new stepping, most of the functional units do not have a change in functionality to warrant a change in the device driver. However, for each new stepping, each of the revision identification registers associated with the integrated functional units contain a value that reflects the new stepping. During the boot process, if the operating system detects a new device stepping, the operating system will load updated device drivers for the various functional units even if there is no change in functionality from the previous stepping to the current stepping.
The loading of updated drivers whether needed or not when a new stepping is detected poses difficulties for computer system manufacturers. Computer system manufacturers often build a pre-load of an operating system on one system and then moves it to an identical system that may have a system logic device with a different silicon stepping. Upon power-up, the operating system will load new device drivers even if not needed, thereby increasing manufacturing time.
The revision identification registers described above are often implemented in accordance with the Peripheral Component Interconnect (PCI) bus standard (Peripheral Component Interconnect Local Bus Specification, Rev. 2.2, released Dec. 18, 1998).